Skip to content

feat(CI): configure workflow for different OS#7253

Open
bijin-bruno wants to merge 10 commits intomainfrom
feat/playwright-os
Open

feat(CI): configure workflow for different OS#7253
bijin-bruno wants to merge 10 commits intomainfrom
feat/playwright-os

Conversation

@bijin-bruno
Copy link
Copy Markdown
Collaborator

@bijin-bruno bijin-bruno commented Feb 22, 2026

Description

Configure workflow for different OS

Contribution Checklist:

  • I've used AI significantly to create this pull request
  • The pull request only addresses one issue or adds one feature.
  • The pull request does not introduce any breaking changes
  • I have added screenshots or gifs to help explain the change if applicable.
  • I have read the contribution guidelines.
  • Create an issue and link to the pull request.

Note: Keeping the PR small and focused helps make it easier to review and merge. If you have multiple changes you want to make, please consider submitting them as separate pull requests.

Publishing to New Package Managers

Please see here for more information.

Summary by CodeRabbit

  • Tests

    • Added dedicated macOS and Windows test workflows; renamed Linux workflow and artifact labels for clarity.
    • Added SSL test jobs per platform and consolidated SSL pipelines.
    • Test steps now accept a configurable shell (bash or pwsh) via a new action input.
    • Adjusted Playwright report artifact names and publishing behavior.
    • Removed several legacy path-related test cases in the internal test collection.
  • Chores

    • Removed legacy standalone SSL workflow; consolidated SSL pipelines into platform-specific workflows.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Feb 22, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Adds a configurable shell input to several composite GitHub Actions and replaces hardcoded bash with ${{ inputs.shell }}; removes the standalone SSL workflow and redistributes SSL test jobs into new or updated platform-specific workflows for Linux, macOS, and Windows.

Changes

Cohort / File(s) Summary
Composite Actions (shell input added)
​.github/actions/common/setup-node-deps/action.yml, ​.github/actions/tests/run-cli-tests/action.yml, ​.github/actions/tests/run-e2e-tests/action.yml, ​.github/actions/tests/run-unit-tests/action.yml
Added inputs.shell (description: "Shell to use (bash, pwsh)", default 'bash') and replaced shell: bash with shell: ${{ inputs.shell }} in action steps.
Removed standalone SSL workflow
​.github/workflows/ssl-tests.yml
Deleted the standalone SSL workflow and its Linux/macOS/Windows jobs.
Linux workflow updates
​.github/workflows/tests-linux.yml
Renamed/clarified workflow/job names, changed Playwright runner to ubuntu-24.04, adjusted timeouts, renamed artifact to playwright-report-linux, removed one publish step, and added a new ssl-test job with CA setup and SSL test steps.
Added macOS workflow
​.github/workflows/tests-macos.yml
New macOS Tests workflow with unit-test, cli-test, e2e-test, and ssl-test jobs on macos-latest; includes Playwright artifact playwright-report-macos and SSL test sequence.
Added Windows workflow
​.github/workflows/tests-windows.yml
New Windows Tests workflow with Unit, CLI, Playwright E2E, and SSL jobs on windows-latest; steps use pwsh as appropriate and upload playwright-report-windows.
SSL action artifact renames
​.github/actions/ssl/linux/run-ssl-e2e-tests/action.yml, ​.github/actions/ssl/macos/run-ssl-e2e-tests/action.yml, ​.github/actions/ssl/windows/run-ssl-e2e-tests/action.yml
Adjusted artifact upload names to include -ssl suffix for platform-specific Playwright reports; minor whitespace normalization in Linux action.
Test collection changes
packages/bruno-tests/collection/scripting/node-builtins/node-path.bru
Removed several path-related test cases (join, dirname, normalize, relative, parts of parse/format).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Suggested reviewers

  • helloanoop
  • lohit-bruno
  • naman-bruno

Poem

🐚 A shell now chosen, bash or pwsh bright,
Jobs split by platform, runners wake at night,
SSL tests find homes on each OS shore,
Artifacts renamed, actions ask for more,
CI hums along — configurations light.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main objective of the PR: configuring CI workflows to support different operating systems (Linux, macOS, Windows).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/playwright-os

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 22, 2026

CLI Test Results (Windows)

  1 files  183 suites   1m 13s ⏱️
385 tests 378 ✅ 0 💤 4 ❌ 3 🔥
465 runs  454 ✅ 1 💤 4 ❌ 6 🔥

For more details on these failures and errors, see this check.

Results for commit 01e0e02.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 22, 2026

CLI Test Results

  1 files  ±0  183 suites  ±0   1m 4s ⏱️ -2s
395 tests ±0  395 ✅ +1  0 💤 ±0  0 ❌  - 1 
476 runs  ±0  475 ✅ +1  1 💤 ±0  0 ❌  - 1 

Results for commit 01e0e02. ± Comparison against base commit 04ef477.

♻️ This comment has been updated with latest results.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/actions/tests/run-cli-tests/action.yml:
- Around line 11-15: The "Run Local Testbench" step uses a trailing "&" to
background the npm start command which breaks when shell: ${{ inputs.shell }} is
pwsh; update the step so it doesn't rely on the Bash background operator: either
set this step's shell explicitly to bash (shell: bash) and keep the current run
block, or implement two conditional steps (one with shell: bash running "npm
start --workspace=packages/bruno-tests &; sleep 5", and one with shell: pwsh
that starts the testbench without using "&" (e.g., start-process or Start-Job /
Use Start-Process -NoNewWindow and wait) ensuring the pwsh variant does not
include the trailing "&"); target the "Run Local Testbench" step and the line
containing "npm start --workspace=packages/bruno-tests &" when making the
change.

In @.github/workflows/tests-macos.yml:
- Around line 17-61: Add the missing setup step that installs node_modules
before each macOS test job: insert a step that uses
./.github/actions/setup-node-deps immediately before the existing "Run Unit
Tests" step in the unit-test job and likewise before "Run CLI Tests" in cli-test
and before "Run E2E Tests" in e2e-test; ensure the step uses the same action
name (setup-node-deps) and placement as in the Linux workflow (no shell override
needed for macOS).

In @.github/workflows/tests-windows.yml:
- Around line 17-66: Add the missing setup-node-deps step to the Windows jobs so
dependencies and packages are installed/built before tests: insert the existing
setup-node-deps step (same as used in tests-linux) into the unit-test, cli-test,
and e2e-test jobs immediately before the steps named "Run Unit Tests", "Run CLI
Tests", and "Run E2E Tests" respectively; ensure each added setup-node-deps step
passes shell: pwsh to match the Windows runners.
- Around line 79-80: The "Setup Node Dependencies" step (uses:
./.github/actions/common/setup-node-deps) is missing the explicit Windows shell
setting; update that step to include "shell: pwsh" so it matches the other
Windows job steps and avoids relying on Git Bash—add the shell: pwsh property to
the step definition for consistency and clarity.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/tests-macos.yml:
- Around line 98-99: The step name "Run Custom CA Certs E2E Tests" is misleading
for the action "./.github/actions/ssl/macos/run-ssl-e2e-tests"; rename the step
to accurately reflect the action (for example "Run SSL E2E Tests (macOS)" or
match the Linux counterpart naming) so the workflow step title and the action
invoked are consistent; update the name field in the workflow where the step
with uses "./.github/actions/ssl/macos/run-ssl-e2e-tests" is declared.
- Around line 25-47: The ci job "cli-test" is missing a timeout configuration
which can hang indefinitely; add the same timeout-minutes: 60 setting to the
cli-test job definition (the job named "cli-test" in the workflow) at the job
top-level so it matches the other jobs and the Linux workflow's cli-test,
ensuring the runner will terminate after 60 minutes if tests hang.

In @.github/workflows/tests-windows.yml:
- Around line 29-55: Add a job timeout to prevent hung CI: in the cli-test job
definition (symbol: cli-test) add timeout-minutes: 60 under the job-level
settings; also propagate the same change to the equivalent jobs in
tests-macos.yml and tests-linux.yml to keep behavior consistent across
platforms.
- Around line 83-109: The Windows ssl-test job is missing the "Setup Feature
Dependencies" step; add a step in the ssl-test job (inside
.github/workflows/tests-windows.yml) immediately before the existing "Setup CA
Certificates" step that uses the action
./.github/actions/ssl/windows/setup-feature-specific-deps (create that action if
it doesn’t exist), with a name like "Setup Feature Dependencies" so the Windows
flow matches tests-linux.yml and tests-macos.yml and ensures feature-specific
deps are installed before setup-ca-certs and subsequent Run *SSL* steps.

---

Duplicate comments:
In @.github/workflows/tests-macos.yml:
- Around line 17-23: Ensure each test job (unit-test, cli-test, e2e-test)
explicitly invokes the local action ./.github/actions/common/setup-node-deps
before its test action so dependencies are installed; update the job steps to
include a step that uses "uses: ./.github/actions/common/setup-node-deps"
immediately prior to the existing test step (e.g., before "uses:
./.github/actions/tests/run-unit-tests") to guarantee setup-node-deps runs for
unit-test, cli-test, and e2e-test.

In @.github/workflows/tests-windows.yml:
- Around line 19-27: The CI jobs were missing the preparatory step to install
Node dependencies and to set PowerShell as the shell; add a step that uses the
setup-node-deps action with with: shell: pwsh before each test action invocation
(e.g., before run-unit-tests, run-cli-tests, run-e2e-tests) in the unit-test,
cli-test, and e2e-test jobs so each job calls setup-node-deps (uses:
./.github/actions/common/setup-node-deps) with shell: pwsh prior to running the
test action.

Comment on lines +25 to +47
cli-test:
name: CLI Tests
runs-on: macos-latest
permissions:
checks: write
pull-requests: write
contents: read
steps:
- uses: actions/checkout@v6

- name: Setup Node Dependencies
uses: ./.github/actions/common/setup-node-deps

- name: Run CLI Tests
uses: ./.github/actions/tests/run-cli-tests

- name: Publish Test Report
uses: EnricoMi/publish-unit-test-result-action@v2
if: always()
with:
check_name: CLI Test Results (macOS)
files: packages/bruno-tests/collection/junit.xml
comment_mode: always
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

cli-test missing timeout-minutes.

All other jobs in this file have timeout-minutes: 60 but cli-test has none. A hung CLI test run would block the runner indefinitely. This is consistent with the Linux workflow's cli-test job, but worth fixing across both.

🐛 Proposed fix
   cli-test:
     name: CLI Tests
+    timeout-minutes: 60
     runs-on: macos-latest
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
cli-test:
name: CLI Tests
runs-on: macos-latest
permissions:
checks: write
pull-requests: write
contents: read
steps:
- uses: actions/checkout@v6
- name: Setup Node Dependencies
uses: ./.github/actions/common/setup-node-deps
- name: Run CLI Tests
uses: ./.github/actions/tests/run-cli-tests
- name: Publish Test Report
uses: EnricoMi/publish-unit-test-result-action@v2
if: always()
with:
check_name: CLI Test Results (macOS)
files: packages/bruno-tests/collection/junit.xml
comment_mode: always
cli-test:
name: CLI Tests
timeout-minutes: 60
runs-on: macos-latest
permissions:
checks: write
pull-requests: write
contents: read
steps:
- uses: actions/checkout@v6
- name: Setup Node Dependencies
uses: ./.github/actions/common/setup-node-deps
- name: Run CLI Tests
uses: ./.github/actions/tests/run-cli-tests
- name: Publish Test Report
uses: EnricoMi/publish-unit-test-result-action@v2
if: always()
with:
check_name: CLI Test Results (macOS)
files: packages/bruno-tests/collection/junit.xml
comment_mode: always
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/tests-macos.yml around lines 25 - 47, The ci job
"cli-test" is missing a timeout configuration which can hang indefinitely; add
the same timeout-minutes: 60 setting to the cli-test job definition (the job
named "cli-test" in the workflow) at the job top-level so it matches the other
jobs and the Linux workflow's cli-test, ensuring the runner will terminate after
60 minutes if tests hang.

Comment on lines +98 to +99
- name: Run Custom CA Certs E2E Tests
uses: ./.github/actions/ssl/macos/run-ssl-e2e-tests No newline at end of file
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Step name doesn't match the action it invokes.

The step is named Run Custom CA Certs E2E Tests but uses ./.github/actions/ssl/macos/run-ssl-e2e-tests. If this action covers general SSL E2E tests (not just custom CA certs), the name is misleading. Consider aligning it with the macOS Linux counterpart (line 110–111 in tests-linux.yml).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/tests-macos.yml around lines 98 - 99, The step name "Run
Custom CA Certs E2E Tests" is misleading for the action
"./.github/actions/ssl/macos/run-ssl-e2e-tests"; rename the step to accurately
reflect the action (for example "Run SSL E2E Tests (macOS)" or match the Linux
counterpart naming) so the workflow step title and the action invoked are
consistent; update the name field in the workflow where the step with uses
"./.github/actions/ssl/macos/run-ssl-e2e-tests" is declared.

Comment on lines +29 to +55
cli-test:
name: CLI Tests
runs-on: windows-latest
permissions:
checks: write
pull-requests: write
contents: read
steps:
- uses: actions/checkout@v6

- name: Setup Node Dependencies
uses: ./.github/actions/common/setup-node-deps
with:
shell: pwsh

- name: Run CLI Tests
uses: ./.github/actions/tests/run-cli-tests
with:
shell: pwsh

- name: Publish Test Report
uses: EnricoMi/publish-unit-test-result-action/windows@v2
if: always()
with:
check_name: CLI Test Results (Windows)
files: packages/bruno-tests/collection/junit.xml
comment_mode: always
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

cli-test missing timeout-minutes — consistent with macOS and Linux, but still worth addressing. A hung CLI test run on Windows would block the runner indefinitely. Consider adding timeout-minutes: 60 here and in the equivalent jobs in tests-macos.yml and tests-linux.yml for consistency.

🐛 Proposed fix
   cli-test:
     name: CLI Tests
+    timeout-minutes: 60
     runs-on: windows-latest
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/tests-windows.yml around lines 29 - 55, Add a job timeout
to prevent hung CI: in the cli-test job definition (symbol: cli-test) add
timeout-minutes: 60 under the job-level settings; also propagate the same change
to the equivalent jobs in tests-macos.yml and tests-linux.yml to keep behavior
consistent across platforms.

Comment on lines +83 to +109
ssl-test:
name: SSL Tests
timeout-minutes: 60
runs-on: windows-latest
permissions:
checks: write
pull-requests: write
contents: read
steps:
- uses: actions/checkout@v6

- name: Setup Node Dependencies
uses: ./.github/actions/common/setup-node-deps
with:
shell: pwsh

- name: Setup CA Certificates
uses: ./.github/actions/ssl/windows/setup-ca-certs

- name: Run Basic SSL CLI Tests
uses: ./.github/actions/ssl/windows/run-basic-ssl-cli-tests

- name: Run Custom CA Certs CLI Tests
uses: ./.github/actions/ssl/windows/run-custom-ca-certs-cli-tests

- name: Run Custom CA Certs E2E Tests
uses: ./.github/actions/ssl/windows/run-ssl-e2e-tests
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Explore the .github/actions directory structure for SSL-related actions
find .github/actions -type d -name ssl | head -20

Repository: usebruno/bruno

Length of output: 77


🏁 Script executed:

#!/bin/bash
# Check what actions exist in the ssl directory structure
find .github/actions/ssl -type f -name "action.yml" | sort

Repository: usebruno/bruno

Length of output: 900


🏁 Script executed:

#!/bin/bash
# Check the tests-linux.yml workflow around line 98-99
fd "tests-linux.yml" .github/workflows --exec cat {}

Repository: usebruno/bruno

Length of output: 3073


🏁 Script executed:

#!/bin/bash
# Check the tests-macos.yml workflow around line 86-87
fd "tests-macos.yml" .github/workflows --exec cat {}

Repository: usebruno/bruno

Length of output: 2593


Windows ssl-test is missing a "Setup Feature Dependencies" step present in both Linux and macOS equivalents.

Both tests-linux.yml (line 98-99) and tests-macos.yml (line 86-87) include a "Setup Feature Dependencies" step before setup-ca-certs. The Windows ssl-test workflow skips this entirely. To match the other platforms and ensure SSL tests run correctly on Windows, add a step calling ./.github/actions/ssl/windows/setup-feature-specific-deps (the action will need to be created if it doesn't exist yet).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/tests-windows.yml around lines 83 - 109, The Windows
ssl-test job is missing the "Setup Feature Dependencies" step; add a step in the
ssl-test job (inside .github/workflows/tests-windows.yml) immediately before the
existing "Setup CA Certificates" step that uses the action
./.github/actions/ssl/windows/setup-feature-specific-deps (create that action if
it doesn’t exist), with a name like "Setup Feature Dependencies" so the Windows
flow matches tests-linux.yml and tests-macos.yml and ensures feature-specific
deps are installed before setup-ca-certs and subsequent Run *SSL* steps.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
.github/actions/common/setup-node-deps/action.yml (1)

8-11: LGTM — clean, backward-compatible shell parameterisation.

Default of bash keeps existing callers untouched, and the description clearly documents the accepted values. One optional hardening: GitHub Actions composite actions don't validate enum inputs, so an unsupported shell value (e.g., sh, cmd) will silently fail mid-run with a cryptic error. Consider adding a guard step if the number of consumers grows.

🛡️ Optional: explicit shell guard step
  inputs:
    shell:
      description: 'Shell to use (bash, pwsh)'
      required: false
      default: 'bash'
+
+  # Guard — add before the first run: step
+  steps:
+    - name: Validate shell input
+      if: ${{ inputs.shell != 'bash' && inputs.shell != 'pwsh' }}
+      shell: bash
+      run: |
+        echo "Unsupported shell '${{ inputs.shell }}'. Allowed: bash, pwsh"
+        exit 1
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/actions/common/setup-node-deps/action.yml around lines 8 - 11, The
'shell' input in action.yml currently defaults to 'bash' but isn't validated;
add an early guard step in the composite action that reads the 'shell' input
(the shell input named "shell") and verifies it is one of the supported values
(e.g., 'bash' or 'pwsh'), and if not, fail fast with a clear error message;
implement this as a lightweight run/step at the top of the action to prevent
cryptic mid-run failures and reference the 'shell' input when producing the
error.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.github/actions/common/setup-node-deps/action.yml:
- Around line 8-11: The 'shell' input in action.yml currently defaults to 'bash'
but isn't validated; add an early guard step in the composite action that reads
the 'shell' input (the shell input named "shell") and verifies it is one of the
supported values (e.g., 'bash' or 'pwsh'), and if not, fail fast with a clear
error message; implement this as a lightweight run/step at the top of the action
to prevent cryptic mid-run failures and reference the 'shell' input when
producing the error.

@github-actions
Copy link
Copy Markdown

CLI Test Results (macOS)

  1 files  183 suites   1m 4s ⏱️
395 tests 395 ✅ 0 💤 0 ❌
476 runs  475 ✅ 1 💤 0 ❌

Results for commit 01e0e02.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/tests-macos.yml:
- Around line 41-44: The e2e-test job is missing an explicit permissions block
which causes it to inherit repo defaults; add a permissions mapping to the
e2e-test job (job name "e2e-test") that mirrors the minimal scope used by the
other jobs (for example setting contents: read, actions: read, id-token: write
or whichever minimal set the repository uses) so the job follows least-privilege
and matches the other jobs' permissions pattern.

---

Duplicate comments:
In @.github/workflows/tests-macos.yml:
- Around line 90-91: The job step name "Run Custom CA Certs E2E Tests" is
misleading relative to the invoked action
"./.github/actions/ssl/macos/run-ssl-e2e-tests"; update the step name to
accurately reflect the broader SSL e2e action (e.g., "Run SSL E2E Tests" or "Run
SSL macOS E2E Tests") so the step label matches the action being executed;
locate the step that contains the uses entry
"./.github/actions/ssl/macos/run-ssl-e2e-tests" and rename its name field
accordingly.
- Around line 25-27: The cli-test job is missing a timeout setting so it can
hang indefinitely; update the job definition for cli-test to include a
timeout-minutes value (use 60 to match other jobs) by adding the
timeout-minutes: 60 key under the cli-test job block so the workflow enforces
the same 60-minute timeout as the other jobs.

Comment on lines +41 to +44
e2e-test:
name: Playwright E2E Tests
timeout-minutes: 60
runs-on: macos-latest
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

e2e-test is missing a permissions block.

All three other jobs (unit-test, cli-test, ssl-test) explicitly declare permissions. This job silently inherits the workflow/repo defaults, which may be broader than intended and diverges from the least-privilege pattern applied elsewhere.

🐛 Proposed fix — mirrors the minimum scope used by other jobs
  e2e-test:
    name: Playwright E2E Tests
    timeout-minutes: 60
    runs-on: macos-latest
+   permissions:
+     contents: read
    steps:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/tests-macos.yml around lines 41 - 44, The e2e-test job is
missing an explicit permissions block which causes it to inherit repo defaults;
add a permissions mapping to the e2e-test job (job name "e2e-test") that mirrors
the minimal scope used by the other jobs (for example setting contents: read,
actions: read, id-token: write or whichever minimal set the repository uses) so
the job follows least-privilege and matches the other jobs' permissions pattern.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (2)
.github/workflows/tests-windows.yml (2)

84-101: ⚠️ Potential issue | 🟠 Major

ssl-test is still missing a "Setup Feature Dependencies" step present in both the Linux and macOS equivalents.

Both tests-linux.yml (Line 90–91) and the macOS workflow include a step calling ./.github/actions/ssl/<os>/setup-feature-specific-deps before setup-ca-certs. Without it, feature-specific dependencies may not be in place when CA certs are configured and the SSL tests run.

🐛 Proposed fix (create the action if it doesn't exist yet)
      - name: Setup Node Dependencies
        uses: ./.github/actions/common/setup-node-deps
        with:
          shell: pwsh

+     - name: Setup Feature Dependencies
+       uses: ./.github/actions/ssl/windows/setup-feature-specific-deps

      - name: Setup CA Certificates
        uses: ./.github/actions/ssl/windows/setup-ca-certs
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/tests-windows.yml around lines 84 - 101, Add the missing
"Setup Feature Dependencies" step to the Windows SSL workflow: insert a step
that uses ./.github/actions/ssl/windows/setup-feature-specific-deps (same as
Linux/macOS) immediately before the "Setup CA Certificates" step so
feature-specific dependencies are installed prior to CA cert configuration and
the subsequent "Run Basic SSL CLI Tests"/"Run Custom CA Certs CLI Tests"/"Run
Custom CA Certs E2E Tests" steps; if that action does not yet exist, create it
mirroring the linux/macos implementation.

29-31: ⚠️ Potential issue | 🟡 Minor

cli-test is still missing timeout-minutes — a hung run will block the Windows runner indefinitely.

🐛 Proposed fix
  cli-test:
    name: CLI Tests (Windows)
+   timeout-minutes: 60
    runs-on: windows-latest
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/tests-windows.yml around lines 29 - 31, The ci job
"cli-test" is missing a timeout-minutes setting which can cause a hung run to
block the Windows runner; add a timeout-minutes property under the cli-test job
definition (the "cli-test" job entry in the workflow) with an appropriate value
(e.g., 10 or another org-standard timeout) so the job will be cancelled
automatically after that duration; ensure the key is at the same indentation
level as name and runs-on within the cli-test job.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In @.github/workflows/tests-windows.yml:
- Around line 84-101: Add the missing "Setup Feature Dependencies" step to the
Windows SSL workflow: insert a step that uses
./.github/actions/ssl/windows/setup-feature-specific-deps (same as Linux/macOS)
immediately before the "Setup CA Certificates" step so feature-specific
dependencies are installed prior to CA cert configuration and the subsequent
"Run Basic SSL CLI Tests"/"Run Custom CA Certs CLI Tests"/"Run Custom CA Certs
E2E Tests" steps; if that action does not yet exist, create it mirroring the
linux/macos implementation.
- Around line 29-31: The ci job "cli-test" is missing a timeout-minutes setting
which can cause a hung run to block the Windows runner; add a timeout-minutes
property under the cli-test job definition (the "cli-test" job entry in the
workflow) with an appropriate value (e.g., 10 or another org-standard timeout)
so the job will be cancelled automatically after that duration; ensure the key
is at the same indentation level as name and runs-on within the cli-test job.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0b5a07f and ad2c51d.

📒 Files selected for processing (12)
  • .github/actions/common/setup-node-deps/action.yml
  • .github/actions/ssl/linux/run-ssl-e2e-tests/action.yml
  • .github/actions/ssl/macos/run-ssl-e2e-tests/action.yml
  • .github/actions/ssl/windows/run-ssl-e2e-tests/action.yml
  • .github/actions/tests/run-cli-tests/action.yml
  • .github/actions/tests/run-e2e-tests/action.yml
  • .github/actions/tests/run-unit-tests/action.yml
  • .github/workflows/ssl-tests.yml
  • .github/workflows/tests-linux.yml
  • .github/workflows/tests-macos.yml
  • .github/workflows/tests-windows.yml
  • packages/bruno-tests/collection/scripting/node-builtins/node-path.bru
💤 Files with no reviewable changes (2)
  • packages/bruno-tests/collection/scripting/node-builtins/node-path.bru
  • .github/workflows/ssl-tests.yml
🚧 Files skipped from review as they are similar to previous changes (4)
  • .github/workflows/tests-macos.yml
  • .github/actions/tests/run-cli-tests/action.yml
  • .github/actions/common/setup-node-deps/action.yml
  • .github/actions/tests/run-unit-tests/action.yml

@bijin-bruno bijin-bruno force-pushed the feat/playwright-os branch 4 times, most recently from 270094e to c7b6596 Compare March 2, 2026 08:47
@bijin-bruno bijin-bruno force-pushed the feat/playwright-os branch 2 times, most recently from 43b6236 to e2cddbb Compare March 4, 2026 20:42
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 21, 2026

⚠️ Warning: You modified flaky/failed test files

The following test files you modified have reliability issues:

❌ Failed: tests/workspace/collection-reorder-persistence.spec.ts

Test: reordered collection order persists after app restart
Status: failed

To debug locally, run:

npx playwright test tests/workspace/collection-reorder-persistence.spec.ts --repeat-each=5 --workers=1

Note: Flaky tests passed after retrying, failed tests did not pass. Please investigate and fix the root cause before merging.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 21, 2026

CLI Test Results (Linux)

  1 files  190 suites   58s ⏱️
423 tests 423 ✅ 0 💤 0 ❌
504 runs  497 ✅ 7 💤 0 ❌

Results for commit 34192c6.

♻️ This comment has been updated with latest results.

@bijin-bruno bijin-bruno force-pushed the feat/playwright-os branch 2 times, most recently from ed13369 to 25799e5 Compare April 1, 2026 08:45
sid-bruno and others added 9 commits April 1, 2026 23:23
* fix: update system proxy fetching to use finally for improved reliability

* Update packages/bruno-electron/src/index.js

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants